#include<bits/stdc++.h>
using namespace std;
int n,m;
int a[100009],c[100009],b[100009];
string s;
bool pd[19][100009];
int len=0;
int T;
int x[5];
int learn;
int poww(int xv){
    int sf=0,num=1;
    while(num<xv){
        sf++;
        num*=2;
    }
    return sf;
}
int quick_pow(int bei){
    if(bei==1)return 2;
    else return 2*quick_pow(bei-1);
}
int dfs(int mi){
    int sum=0,s;
    for(int i=1;i<=mi;i++){
        s=rand()%2-1;
        if(s==1||s==0);
        else sum+=i;
    }
    return sum;
}
int main(){
    freopen("arena.in","r",stdin);
    freopen("arena.out","w",stdout);
    ios::sync_with_stdio(0);
    cin.tie(0),cout.tie(0);
    cin>>n>>m;
    for(int i=1;i<=n;i++)cin>>a[i];
    for(int i=1;i<=m;i++)cin>>c[i];
    while(cin>>s){
        len++;
        for(int i=0;i<s.size();i++){
            pd[len][i+1]=s[i]-'0';
        }
    }
    cin>>T;
    while(T--){
        srand(time(0));
        for(int i=0;i<4;i++)cin>>x[i];
        for(int i=1;i<=n;i++){
            b[i]=a[i]^x[i%4];
        }
        int ans=0;
        for(int i=1;i<=m;i++){
            int mi=poww(c[i]);
            mi=quick_pow(mi);
            learn=c[i];
            if(i==1)ans=dfs(mi);
            else ans=ans^dfs(mi);
        }
        cout<<ans<<"\n";
    }
}
